/**
 * Copyright (c) 2010 BullionXpress.com,
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 */
package com.bullionxpress.client.controller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.RemoteException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import com.bullionxpress.client.application.ClientGlobals;
import com.bullionxpress.client.view.LoginPanel;
import com.bullionxpress.shared.model.User;
import com.bullionxpress.shared.service.InvalidPasswordException;
import com.bullionxpress.shared.service.LoginService;
import com.bullionxpress.shared.service.UserNotFoundException;
import com.bullionxpress.shared.util.Log;

/**
 *
 * @author BullionXpress.com
 */
public class LoginController implements ActionListener {

    JDialog dialog = null;
    LoginPanel view = null;

    public LoginController()
    {

    }

    public void setDialog(JDialog dialog)
    {
        this.dialog = dialog;
    }

    public void setView(LoginPanel panel)
    {
        view = panel;
    }

    public void actionPerformed(ActionEvent e) {
        try {
            Log.info("Do Login");
            String userId = view.getUserId();
            userId = userId.toLowerCase();
            String password = view.getPassword();
            password = password.toLowerCase();
            Log.info(userId + " ********");
            LoginService service = ClientGlobals.loginService;
            User u = service.login(userId, password);
            ClientGlobals.user = u;
            ClientGlobals.account = u.getAccount();
            dialog.setVisible(false);
        } catch (InvalidPasswordException ex) {
            JOptionPane.showMessageDialog(dialog, "Incorrect Username or Password");
            Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UserNotFoundException ex) {
            JOptionPane.showMessageDialog(dialog, "Incorrect Username or Password");
            Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (RemoteException ex) {
            Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


}
